iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
Kubernetes

開工前挑戰 K8s系列 第 7

Day7 - K8s核心資源(3) Deployment

  • 分享至 

  • xImage
  •  

前言

昨天在介紹ReplicaSet時有提及,目前官方文檔中建議使用Deployment,來取代ReplicationController和ReplicaSet。

We recommend using Deployments instead of directly using ReplicaSets, unless you require custom update orchestration or don't require updates at all

Deployment

實際上Depolyment是一種高階抽象(high-level abstraction),可以將其理解為: 當建立一個Deployment資源,K8s會自動建立好ReplicaSet和所對應的Pods。

Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to Pods along with a lot of other useful features.

透過設定期望狀態,Deployment Controller會不斷監控並使其狀態符合預期,而以下列出常見的應用情境:

  • 建立Deployment來部屬ReplicaSet
  • 擴展部屬以利承受更多負載
  • 透過更新PodTemplateSpec來聲明Pod的新狀態
  • 當前版本狀態不穩定,透過Rollback至早期的版本
  • 透過HorizontalPodAutoscaler更新Deployment可因應負載來增加或減少 replication。

以下為Deployment設定檔範例

# deployment-definition.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

上一篇
Day6 - K8s核心資源(2) ReplicaSet
下一篇
Day8 - K8s核心資源(4) Label & Selector
系列文
開工前挑戰 K8s8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言